package org.baicaixiaozhan.learn.guava.base;

import com.google.common.base.Preconditions;

/**
 * DESC: {@link Preconditions} 检查 (前提条件) 示例
 *
 * @author : baicaixiaozhan
 * @since : 2020-11-11
 */
public class PreconditionsDemo {
    public static void main(String[] args) {

        // 类比 java api assert, 属于 fail-fast 设计

        // 检查对象
        // @see Objects#requireNonNull()
        // false : throw NullPointerException
        Preconditions.checkNotNull(null);

        // 检查参数
        // false : throw IllegalArgumentException
        Preconditions.checkArgument(20 > 200);

        // 检查状态
        // false : throw IllegalStateException
        Preconditions.checkState(false);
    }


}